package telas;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.net.URL;
import java.util.ArrayList;

import ServidorInterfaces.ServidorInterfaceHelper;
import cliente.Cliente;

import com.cloudgarden.layout.AnchorConstraint;
import com.cloudgarden.layout.AnchorLayout;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;

import org.omg.CosNaming.NameComponent;



/**
 * This code was edited or generated using CloudGarden's Jigloo
 * SWT/Swing GUI Builder, which is free for non-commercial
 * use. If Jigloo is being used commercially (ie, by a corporation,
 * company or business for any purpose whatever) then you
 * should purchase a license for each developer using Jigloo.
 * Please visit www.cloudgarden.com for details.
 * Use of Jigloo implies acceptance of these licensing terms.
 * A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
 * THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
 * LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
 */
public class tela_principal extends javax.swing.JFrame {
	private JPanel lista_usuarios_jpanel;
	private JLabel pessoas_perto_label = new JLabel();
	private JButton buscar_botao;
	private JPanel radar_jpanel;
	private JTextField filtro_jtextfield;
	private JLabel filtro_label;
	private String[] args;
	private Cliente cliente;


	public ArrayList<String> nome_usuarios;
	public ArrayList<String> status_usuario;
	public ArrayList<String> foto_usuario;
	public ArrayList<Double> latitudes;
	public ArrayList<Double> longitudes;
	public ArrayList<String> logins_usuario;

	public double areaDeBusca=100600;
	private JMenuBar jMenuBar_Messeger;
	private JMenu jMenu1;
	private JMenuItem sair;
	private JMenu Menu_Status;
	private JMenuItem online;
	private JMenuItem ocupado;
	private JMenuItem ausente;
	private JMenuItem offline;
	private JMenu sobre;
	private JMenuItem creditos;
	private JMenu alterar;
	private JMenuItem alterar_lat;
	private JMenuItem alterar_long;
	private JMenuItem alterar_lat_long;

	/**
	 * Auto-generated main method to display this JFrame
	 */
	/*
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				tela_principal inst = new tela_principal();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}
	 */
	public tela_principal(String[] args, Cliente cliente) {
		super();
		this.setTitle(cliente.getNome());
		nome_usuarios = new ArrayList<String>();
		status_usuario = new ArrayList<String>();
		foto_usuario = new ArrayList<String>();
		this.args = args;
		//Referência do cliente atual
		this.cliente = cliente;
		this.cliente.setTela_atual(this);
		initGUI();
	}

	public void atualizaRadar(){
		radar_jpanel.removeAll();
		radar_jpanel.repaint();

		pessoas_perto_label.setText("Pessoas Por Perto:      Minha Longitude:"+cliente.getLongitude()+", Latitude: "+cliente.getLatitude());

		//Atualiza tudo
		//cliente.instanciaServidor.listaUsuariosVisiveis(cliente.getUsuario(), cliente.getLatitude(), cliente.getLongitude(), areaDeBusca);

		//cliente.instanciaServidor.listaLongitudesUsuariosVisiveis(cliente.getNome());
		longitudes= cliente.getLongitudeVisiveis();

		//cliente.instanciaServidor.listaLatitudesUsuariosVisiveis(cliente.getNome());
		latitudes= cliente.getLatitudeVisiveis();

		//cliente.instanciaServidor.listaStatusUsuariosVisiveis(cliente.getNome());
		status_usuario= cliente.getStatusVisiveis();

		nome_usuarios = cliente.getUsuariosVisiveis();

		foto_usuario = cliente.getFotosVisiveis();

		//adicionando cliente atual
		nome_usuarios.add(cliente.getNome());
		foto_usuario.add(cliente.getFoto());
		longitudes.add(cliente.getLongitude());
		latitudes.add(cliente.getLatitude());
		status_usuario.add("centro");

		for(Double latitude : latitudes) {
			System.out.println(latitude);
		}
		for(Double latitude : longitudes) {
			System.out.println(latitude);
		}
		for(String latitude : status_usuario) {
			System.out.println(latitude);
		}
		//Imagem da estrela que está no centro do Radar
		//ImageIcon centro = new ImageIcon("imagens/centro.png");
		//centro.setImage(centro.getImage().getScaledInstance(12, 12, 12));  
		//JLabel centro_radar = new JLabel(centro);
		//centro_radar.setBounds(356, 184, 12, 12);
		//radar_jpanel.add(centro_radar);

		//Lista dos usuários que estão na área 
		logins_usuario = new ArrayList<String>();

		logins_usuario = cliente.getUsuariosVisiveis(); 

		Double lat_maior = -100.0; // o maior mesmo é 90.0, to botando 100.0 pra garantir
		Double lat_menor = 100.0; // o menor mesmo é -90.0, to botando -100.0 pra garantir
		Double long_maior = -190.0; // o maior mesmo é 180.0, to botando 100.0 pra garantir
		Double long_menor = 190.0; // o menor mesmo é -180.0, to botando -100.0 pra garantir

		//Verifica quem tem a maior e menor latitude
		for(Double latitude : latitudes) {

			if( latitude < lat_menor) {
				lat_menor = latitude;
			}
			if( latitude > lat_maior) {
				lat_maior = latitude;
			}		    	
		}

		//Verifica quem tem maior e menor longitude
		for(Double longitude : longitudes) {
			if( longitude < long_menor) {
				long_menor = longitude;
			}
			if( longitude > long_maior) {
				long_maior = longitude;
			}
		}


		ArrayList<Double> coordenadas_x = new ArrayList<Double>();
		ArrayList<Double> coordenadas_y = new ArrayList<Double>();

		System.out.println("Longitude no GUI: ");

		//calculo de regra de tres composta para saber a posicao da longitude especifica do usuario:
		for(Double longitude : longitudes) {
			System.out.println(300*((longitude-long_menor)/(long_maior-long_menor)));
			coordenadas_y.add(300*((longitude-long_menor)/(long_maior-long_menor)));
		}

		System.out.println("Latitude no GUI: ");
		//calculo de regra de tres composta para saber a posicao da latitude especifica do usuario:
		for(Double latitude : latitudes) {
			System.out.println(660*((latitude-lat_menor)/(lat_maior-lat_menor)));
			coordenadas_x.add(660*((latitude-lat_menor)/(lat_maior-lat_menor)));
		}

		//Para todos os usuários visíveis coloca a imagem
		for( int i = 0 ; i < coordenadas_x.size() ; i++) {

			System.out.println((int) Math.round(coordenadas_x.get(i))+" - "+(int) Math.round(coordenadas_y.get(i)));

			final String usuario_conversa = nome_usuarios.get(i);
			final String foto_conversa = foto_usuario.get(i);

			ImageIcon usuario = new ImageIcon("imagens/"+status_usuario.get(i)+".png");

			if( status_usuario.get(i).equals("centro") ) {
				usuario.setImage(usuario.getImage().getScaledInstance(12, 12, 12));  
			}

			//usuario.setImage(usuario.getImage().getScaledInstance(12, 12, 12));  
			JLabel usuario_radar = new JLabel(usuario);
			usuario_radar.setBounds( (int) Math.round(coordenadas_x.get(i)), (int) Math.round(coordenadas_y.get(i)), 12, 12);

			if( !status_usuario.get(i).equals("centro") ) {

				usuario_radar.addMouseListener(new MouseAdapter(){  
					public void mouseClicked(MouseEvent e) {  

						//JOptionPane.showMessageDialog(null, "Clicado no usuario: ", "Nome de Usuário", JOptionPane.ERROR_MESSAGE);
						//Cria uma tela principal
						boolean criarNovaTela=true;
						//int indice=-1;
						for (int i = 0; i < cliente.telas_bate_papo.size(); i++) {
							if(cliente.telas_bate_papo.get(i).getNomeUsuario().equals(usuario_conversa)){
								criarNovaTela=false;
								//	indice=i;
							}
						}
						//Só cria se não existir tela atual
						if(criarNovaTela){
							tela_chat inst = new tela_chat(usuario_conversa,cliente, foto_conversa);
							inst.setLocationRelativeTo(null);
							inst.setVisible(true);
							//cliente.setPrimeiraVez(false);
							cliente.telas_bate_papo.add(inst);
						}
					}
				});
			}
			radar_jpanel.add(usuario_radar);

		}

		radar_jpanel.repaint();

	}

	public void atualizaListaUsuarios(){
		lista_usuarios_jpanel.removeAll();
		lista_usuarios_jpanel.repaint();
		System.out.println("atualizou usuário lat:"+cliente.getLatitude()+" log:"+cliente.getLongitude());

		pessoas_perto_label.setText("Pessoas Por Perto:      Minha Longitude:"+cliente.getLongitude()+", Latitude: "+cliente.getLatitude());


		//Faz a requisição de atualizar lista de usuários visíveis
		cliente.instanciaServidor.listaUsuariosVisiveis(cliente.getNome(), cliente.getLatitude(), cliente.getLongitude(), areaDeBusca);

		nome_usuarios= cliente.getUsuariosVisiveis();						

		//atualizaRadar();
		//nome_usuarios.add("Bruno Avelino");
		//nome_usuarios.add("Wandemberg Rodrigues");
		//nome_usuarios.add("Danniel Alburquerque");
		//nome_usuarios.add("Kelly Mineiro");

		//status_usuario.add("online");
		//status_usuario.add("ausente");
		//status_usuario.add("offline");
		//status_usuario.add("ocupado");

		//Avisa o servidor para atualizar a lista de status
		//cliente.instanciaServidor.listaStatusUsuariosVisiveis(cliente.getNome());
		status_usuario= cliente.getStatusVisiveis();

		//cliente.instanciaServidor.listaFotoUsuariosVisiveis(cliente.getNome());
		foto_usuario= cliente.getFotosVisiveis();

		//foto_usuario.add("sem_foto.png");
		//foto_usuario.add("sem_foto.png");
		//foto_usuario.add("sem_foto.png");
		//foto_usuario.add("sem_foto.png");

		//Lista com os nomes dos usuários visíveis
		for( int i = 0 ; i < nome_usuarios.size() ; i++ ) {

			//Escreve o nomes do usuário
			JLabel label = new JLabel(nome_usuarios.get(i));  
			label.setFont(new Font("Tahoma", 0, 14));  
			label.setBounds(40, 25*(i) , 200, 30);  

			//Coloca a imagem do usuário
			ImageIcon foto = new ImageIcon("foto/"+foto_usuario.get(i)+".png");
			foto.setImage(foto.getImage().getScaledInstance(25, 25, 25));  
			JLabel foto_atual = new JLabel(foto);
			foto_atual.setBounds(10, 25*(i), 25, 25);  

			System.out.println("URL do caminho:");
			System.out.println(System.getProperty("user.dir"));

			//Coloca o ícone do status do usuário
			ImageIcon status = new ImageIcon("imagens/"+status_usuario.get(i)+".png");
			//status.setImage(status.getImage().getScaledInstance(25, 25, 25));  
			JLabel status_atual = new JLabel(status);
			status_atual.setBounds(270, 25*(i), 25, 25);

			final String usuario_atual = nome_usuarios.get(i);
			final String foto_amigo = foto_usuario.get(i);

			JPanel area_clicavel = new JPanel();  
			area_clicavel.setBounds(0,25*i,300,25);
			//area_clicavel.setBackground(new java.awt.Color(255,255,20));
			area_clicavel.setOpaque(false);  
			//Ao clicar no usuário selecionado
			area_clicavel.addMouseListener(new MouseAdapter(){  
				public void mouseClicked(MouseEvent e) {  
					//Cria uma tela principal
					boolean criarNovaTela=true;
					//int indice=-1;
					for (int i = 0; i < cliente.telas_bate_papo.size(); i++) {
						if(cliente.telas_bate_papo.get(i).getNomeUsuario().equals(usuario_atual)){
							criarNovaTela=false;
							//	indice=i;
						}
					}
					//Só cria se não existir tela atual
					if(criarNovaTela){

						//JOptionPane.showMessageDialog(null, "Clicado no usuario: "+usuario_atual, "Nome de Usuário", JOptionPane.ERROR_MESSAGE);
						//Cria uma tela principal
						tela_chat inst = new tela_chat(usuario_atual,cliente, foto_amigo);
						inst.setLocationRelativeTo(null);
						inst.setVisible(true);
						//cliente.setPrimeiraVez(false);
						cliente.telas_bate_papo.add(inst);}

				}
			});

			lista_usuarios_jpanel.add(area_clicavel);
			lista_usuarios_jpanel.add(label);  
			lista_usuarios_jpanel.add(foto_atual);
			lista_usuarios_jpanel.add(status_atual);

		}
		lista_usuarios_jpanel.repaint();

	}



	private void initGUI() {
		try {
			AnchorLayout thisLayout = new AnchorLayout();
			getContentPane().setLayout(thisLayout);
			setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
			addWindowListener(new WindowAdapter()  
			{  
				public void windowClosing (WindowEvent e) {  
					//caixa de dialogo retorna um inteiro  
					int resposta = JOptionPane.showConfirmDialog(null,"Deseja finalizar essa operação?","Finalizar",JOptionPane.YES_NO_OPTION);  

					//sim = 0, nao = 1  
					if (resposta == 0) {  
						cliente.instanciaServidor.setaUsuarioOffline(cliente.getNome());
						System.exit(0);  
					}  
				}  
			});  
			{
				//Botão buscar
				buscar_botao = new JButton();
				getContentPane().add(buscar_botao, new AnchorConstraint(22, 982, 76, 843, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
				buscar_botao.setText("Buscar");
				buscar_botao.setPreferredSize(new java.awt.Dimension(83, 23));
				buscar_botao.addMouseListener(new MouseAdapter(){  

					public void mouseClicked(MouseEvent e) {  

						areaDeBusca=Double.parseDouble(filtro_jtextfield.getText());
						filtro_jtextfield.setText("");
						//Faz a requisição de atualizar lista de usuários visíveis
						cliente.instanciaServidor.listaUsuariosVisiveis(cliente.getNome(), cliente.getLatitude(), cliente.getLongitude(),areaDeBusca);

						atualizaRadar();
						atualizaListaUsuarios();
						nome_usuarios= cliente.getUsuariosVisiveis();						

					}
				});

			}
			{
				//Painel do Radar
				radar_jpanel = new JPanel();
				radar_jpanel.setLayout(null);
				getContentPane().add(radar_jpanel, new AnchorConstraint(121, 991, 968, 302, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
				radar_jpanel.setPreferredSize(new java.awt.Dimension(720, 360));
				radar_jpanel.setBackground(new java.awt.Color(240,255,255));

				System.out.println("Atualizando lista de clientes visíveis");
				//Buscar os usuários visíveis
				cliente.instanciaServidor.listaUsuariosVisiveis(cliente.getNome(), cliente.getLatitude(), cliente.getLongitude(), areaDeBusca);

				System.out.println("Lista de usuários visíveis");
				for (int i = 0; i < cliente.getUsuariosVisiveis().size(); i++) {
					System.out.println(cliente.getUsuariosVisiveis().get(i));

				}

				atualizaRadar();
				//atualizaListaUsuarios();
				/*
				//Evento ao clicar no radar
				radar_jpanel.addMouseListener(new MouseAdapter(){  

					public void mouseClicked(MouseEvent e) {  

						radar_jpanel.removeAll();
						radar_jpanel.repaint();
						//Atualiza tudo
						cliente.instanciaServidor.listaUsuariosVisiveis(cliente.getUsuario(), cliente.getLatitude(), cliente.getLongitude(), areaDeBusca);

						//cliente.instanciaServidor.listaLongitudesUsuariosVisiveis(cliente.getNome());
						longitudes= cliente.getLongitudeVisiveis();

						//cliente.instanciaServidor.listaLatitudesUsuariosVisiveis(cliente.getNome());
						latitudes= cliente.getLatitudeVisiveis();

						//cliente.instanciaServidor.listaStatusUsuariosVisiveis(cliente.getNome());
						status_usuario= cliente.getStatusVisiveis();

						nome_usuarios = cliente.getUsuariosVisiveis();

						foto_usuario = cliente.getFotosVisiveis();

						for(Double latitude : latitudes) {
							System.out.println(latitude);
						}
						for(Double latitude : longitudes) {
							System.out.println(latitude);
						}
						for(String latitude : status_usuario) {
							System.out.println(latitude);
						}
						//Imagem da estrela que está no centro do Radar
						ImageIcon centro = new ImageIcon("imagens/centro.png");
						centro.setImage(centro.getImage().getScaledInstance(12, 12, 12));  
						JLabel centro_radar = new JLabel(centro);
						centro_radar.setBounds(356, 184, 12, 12);
						radar_jpanel.add(centro_radar);

						//Lista dos usuários que estão na área 
						logins_usuario = new ArrayList<String>();

						//Status dos usuários de exemplo
						/*status2_usuario.add("online");
						status2_usuario.add("ausente");
						status2_usuario.add("offline");
						status2_usuario.add("ocupado");*/

				logins_usuario = cliente.getUsuariosVisiveis(); 
				//Login do usuários de exemplo
				/*logins_usuario.add("bruno");
						logins_usuario.add("wandemberg");
						logins_usuario.add("danniel");
						logins_usuario.add("kelly");

						Double lat_maior = -100.0; // o maior mesmo é 90.0, to botando 100.0 pra garantir
						Double lat_menor = 100.0; // o menor mesmo é -90.0, to botando -100.0 pra garantir
						Double long_maior = -190.0; // o maior mesmo é 180.0, to botando 100.0 pra garantir
						Double long_menor = 190.0; // o menor mesmo é -180.0, to botando -100.0 pra garantir

						//Verifica quem tem a maior e menor latitude
						for(Double latitude : latitudes) {

							if( latitude < lat_menor) {
								lat_menor = latitude;
							}
							if( latitude > lat_maior) {
								lat_maior = latitude;
							}		    	
						}

						//Verifica quem tem maior e menor longitude
						for(Double longitude : longitudes) {
							if( longitude < long_menor) {
								long_menor = longitude;
							}
							if( longitude > long_maior) {
								long_maior = longitude;
							}
						}


						ArrayList<Double> coordenadas_x = new ArrayList<Double>();
						ArrayList<Double> coordenadas_y = new ArrayList<Double>();

						System.out.println("Longitude no GUI: ");

						//calculo de regra de tres composta para saber a posicao da longitude especifica do usuario:
						for(Double longitude : longitudes) {
							System.out.println(340*((longitude-long_menor)/(long_maior-long_menor)));
							coordenadas_y.add(340*((longitude-long_menor)/(long_maior-long_menor)));
						}

						System.out.println("Latitude no GUI: ");
						//calculo de regra de tres composta para saber a posicao da latitude especifica do usuario:
						for(Double latitude : latitudes) {
							System.out.println(700*((latitude-lat_menor)/(lat_maior-lat_menor)));
							coordenadas_x.add(700*((latitude-lat_menor)/(lat_maior-lat_menor)));
						}

						//Para todos os usuários visíveis coloca a imagem
						for( int i = 0 ; i < coordenadas_x.size() ; i++) {

							System.out.println((int) Math.round(coordenadas_x.get(i))+" - "+(int) Math.round(coordenadas_y.get(i)));

							final String usuario_conversa = nome_usuarios.get(i);
							final String foto_conversa = foto_usuario.get(i);

							ImageIcon usuario = new ImageIcon("imagens/"+status_usuario.get(i)+".png");
							//usuario.setImage(usuario.getImage().getScaledInstance(12, 12, 12));  
							JLabel usuario_radar = new JLabel(usuario);
							usuario_radar.setBounds( (int) Math.round(coordenadas_x.get(i)), (int) Math.round(coordenadas_y.get(i)), 12, 12);

							usuario_radar.addMouseListener(new MouseAdapter(){  
								public void mouseClicked(MouseEvent e) {  

									//JOptionPane.showMessageDialog(null, "Clicado no usuario: ", "Nome de Usuário", JOptionPane.ERROR_MESSAGE);
									//Cria uma tela principal
									tela_chat inst = new tela_chat(usuario_conversa,cliente, foto_conversa);
									inst.setLocationRelativeTo(null);
									inst.setVisible(true);
									cliente.setPrimeiraVez(false);
									cliente.telas_bate_papo.add(inst);

								}
							});

							radar_jpanel.add(usuario_radar);

						}

						radar_jpanel.repaint();

					}
				});*/

			}
			{
				filtro_jtextfield = new JTextField();
				getContentPane().add(filtro_jtextfield, new AnchorConstraint(22, 833, 76, 656, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
				filtro_jtextfield.setPreferredSize(new java.awt.Dimension(106, 23));
			}
			{
				//Texto do filtro 
				filtro_label = new JLabel();
				getContentPane().add(filtro_label, new AnchorConstraint(29, 658, 67, 477, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
				filtro_label.setText("Filtro por Distância (Km):");
				filtro_label.setPreferredSize(new java.awt.Dimension(128, 16));
			}
			{
				//Texto de pessoas por perto
				pessoas_perto_label = new JLabel();
				getContentPane().add(pessoas_perto_label, new AnchorConstraint(28, 442, 66, 11, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
				pessoas_perto_label.setText("Pessoas Por Perto:     Longitude:"+cliente.getLatitude()+" Latitude: "+cliente.getLatitude());
				pessoas_perto_label.setPreferredSize(new java.awt.Dimension(130, 16));
			}
			{
				lista_usuarios_jpanel = new JPanel();
				lista_usuarios_jpanel.setLayout(null);
				getContentPane().add(lista_usuarios_jpanel, new AnchorConstraint(95, 296, 989, 9, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL, AnchorConstraint.ANCHOR_REL));
				lista_usuarios_jpanel.setPreferredSize(new java.awt.Dimension(300, 380));
				lista_usuarios_jpanel.setBackground(new java.awt.Color(0,255,255));
				lista_usuarios_jpanel.setAutoscrolls(true);
				//Evento ao clicar no painel do radar
				atualizaListaUsuarios();

			}
			{
				jMenuBar_Messeger = new JMenuBar();
				setJMenuBar(jMenuBar_Messeger);
				{
					jMenu1 = new JMenu();
					jMenuBar_Messeger.add(jMenu1);
					jMenu1.setText("Arquivo");
					{
						sair = new JMenuItem();
						jMenu1.add(sair);
						sair.setText("Sair");
						sair.addActionListener(new java.awt.event.ActionListener() {  
							public void actionPerformed(java.awt.event.ActionEvent evt) {
								cliente.instanciaServidor.setaUsuarioOffline(cliente.getNome());
								System.exit(0);
							}
						});
					}
				}
				{
					Menu_Status = new JMenu();
					jMenuBar_Messeger.add(Menu_Status);
					Menu_Status.setText("Alterar Status");
					{
						online = new JMenuItem();
						Menu_Status.add(online);
						online.setText("online");
						online.addActionListener(new java.awt.event.ActionListener() {  
							public void actionPerformed(java.awt.event.ActionEvent evt) {
								cliente.instanciaServidor.setaUsuarioStatus(cliente.getNome(), "online"); 
							}
						});
					}
					{
						ocupado = new JMenuItem();
						Menu_Status.add(ocupado);
						ocupado.setText("ocupado");
						ocupado.addActionListener(new java.awt.event.ActionListener() {  
							public void actionPerformed(java.awt.event.ActionEvent evt) {
								cliente.instanciaServidor.setaUsuarioStatus(cliente.getNome(), "ocupado"); 
							}
						});
					}
					{
						ausente = new JMenuItem();
						Menu_Status.add(ausente);
						ausente.setText("ausente");
						ausente.addActionListener(new java.awt.event.ActionListener() {  
							public void actionPerformed(java.awt.event.ActionEvent evt) {
								cliente.instanciaServidor.setaUsuarioStatus(cliente.getNome(), "ausente"); 
							}
						});
					}
					{
						offline = new JMenuItem();
						Menu_Status.add(offline);
						offline.setText("offline");
						offline.addActionListener(new java.awt.event.ActionListener() {  
							public void actionPerformed(java.awt.event.ActionEvent evt) {
								cliente.instanciaServidor.setaUsuarioOffline(cliente.getNome());
							}
						});
					}
				}
				{
					alterar = new JMenu();
					jMenuBar_Messeger.add(alterar);
					alterar.setText("Alterar");
					{
						alterar_lat_long = new JMenuItem();
						alterar.add(alterar_lat_long);
						alterar_lat_long.setText("Latitude / Longitude");
						alterar_lat_long.addActionListener(new java.awt.event.ActionListener() {  
							public void actionPerformed(java.awt.event.ActionEvent evt) { 

								//JOptionPane.showInputDialog(parentComponent, message)
								//(null,"Este jogo foi desenvolvido por Bruno Avelino e Wandemberg Rodrigues, na disciplina do IFCE: Programação Paralela e Distribuída, ministrada pelo Prof. Cidcley.","Sobre",JOptionPane.QUESTION_MESSAGE);
								double latitude =  Double.parseDouble( JOptionPane.showInputDialog(null, "Qual a Latitude?", "Pergunta", JOptionPane.PLAIN_MESSAGE));
								double longitude = Double.parseDouble(JOptionPane.showInputDialog(null, "Qual a Longitude?", "Pergunta", JOptionPane.PLAIN_MESSAGE));
								cliente.setLatitude(latitude);
								cliente.setLongitude(longitude);
								cliente.instanciaServidor.setaDistancia(cliente.getUsuario(), latitude, longitude);
								pessoas_perto_label.setText("Pessoas Por Perto:      Minha Longitude:"+cliente.getLongitude()+", Latitude: "+cliente.getLatitude());

							}
						});
					}
				}
				{
					sobre = new JMenu();
					jMenuBar_Messeger.add(sobre);
					sobre.setText("Sobre");
					{
						creditos = new JMenuItem();
						sobre.add(creditos);
						creditos.setText("Créditos");
						creditos.addActionListener(new java.awt.event.ActionListener() {  
							public void actionPerformed(java.awt.event.ActionEvent evt) {  
								JOptionPane.showMessageDialog(null,"Este jogo foi desenvolvido por Bruno Avelino e Wandemberg Rodrigues, na disciplina do IFCE: Programação Paralela e Distribuída, ministrada pelo Prof. Cidcley.","Sobre",JOptionPane.QUESTION_MESSAGE);
							}
						});
					}
				}
			}


			pack();
			this.setSize(1061, 463);
		} catch (Exception e) {
			//add your error handling code here
			e.printStackTrace();
		}
	}

}
